package cc.yugu.yhdw.webserver.persistence.basic;

import cc.yugu.yhdw.common.domain.basic.User;
import cc.yugu.yhdw.common.persistence.MasterMapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
/**
 * 用户信息
 *
 * @Date:Created in 2018/6/29 11:53
 * @Author:
 * @Modified By: zjn 2018/6/29 11:53
 */
public interface UserMapper extends MasterMapper {
    /**
    * 按条件查询表bas_user中用户名昵称（登录名）
    *
    * @Param: [property, value]
    * @Return: java.lang.String
    * @Author By: zjn 2018/6/29  11:53
    */
    public String hasRecordByProperty(@Param("property") String property, @Param("value") Object value);
    /**
    * 根据运营商id查询
    *
    * @Param: [agentId]
    * @Return: java.util.List<cc.yugu.yhdw.common.domain.basic.User>
    * @Author By: zjn 2018/6/29  11:57
    */
    public List<User> findByAgent(int agentId);
    /**
    * 根据主键id和昵称精确查询，并返回行数
    *
    * @Param: [id, username]
    * @Return: int
    * @Author By: zjn 2018/6/29  11:57
    */
    public int findUnique(@Param("id") Integer id, @Param("username") String username);
    /**
    * 根据主键id查询
    *
    * @Param: [id]
    * @Return: cc.yugu.yhdw.common.domain.basic.User
    * @Author By: zjn 2018/6/29  13:57
    */
    public User find(int id);
    /**
    * 根据用户名和密码查询登陆者信息
    *
    * @Param: [user]
    * @Return: cc.yugu.yhdw.common.domain.basic.User
    * @Author By: zjn 2018/6/29  13:57
    */
    public User findByLoginInfo(User user);
    /**
    * 根据条件查询，并返回行数
    *
    * @Param: [user]
    * @Return: int
    * @Author By: zjn 2018/6/29  13:58
    */
    public int findPageCount(User user);
    /**
    * 按条件分页查询
    *
    * @Param: [user]
    * @Return: java.util.List<cc.yugu.yhdw.common.domain.basic.User>
    * @Author By: zjn 2018/6/29  13:59
    */
    public List<User> findPageResult(User user);
    /**
    * 往表中插入数据
    *
    * @Param: [user]
    * @Return: int
    * @Author By: zjn 2018/6/29  13:59
    */
    public int insert(User user);
    /**
    * 根据登陆者信息更新 是否启用标志
    *
    * @Param: [agencyId, agentId, supplierId, activeFlag]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:00
    */
    public int disable(@Param("agencyId")Integer agencyId,@Param("agentId")Integer agentId,@Param("supplierId")Integer supplierId,@Param("activeFlag")int activeFlag);
    /**
    * 根据主键id和旧密码，更新成新密码
    *
    * @Param: [id, oldPassword, newPassword]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:01
    */
    public int updatePassword(@Param("id") int id, @Param("oldPassword") String oldPassword, @Param("newPassword") String newPassword);
    /**
    * 根据主键id更新最后登录时间
    *
    * @Param: [id, lastLoginTime]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:02
    */
    public int updateLoginTime(@Param("id") int id, @Param("lastLoginTime") Date lastLoginTime);
    /**
    * 根据主键id更新
    *
    * @Param: [user]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:03
    */
    public int update(User user);
    /**
    * 删除
    *
    * @Param: [id]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:04
    */
    public int delete(int id);
    /**
    * 根据运营商id删除
    *
    * @Param: [id]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:04
    */
    public int deleteByAgent(int id);
    /**
    * 根据代理商id删除
    *
    * @Param: [id]
    * @Return: int
    * @Author By: zjn 2018/6/29  14:04
    */
    public int deleteByAgency(int id);
}
